iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 29
0
自我挑戰組

新手 R 語言學習紀錄系列 第 29

Day 29- R語言 互動式資料視覺化 Part 2- plotly 套件

  • 分享至 

  • xImage
  •  

Day 29- R語言 互動式資料視覺化 Part 2- plotly 套件
(前言:內個,我只是個剛接觸程式設計的小萌新,如果內文內容、程式碼、統計資料圖寫或畫的不對,還請各位大大指教 Orz)

今天我們來學學另外一個資料視覺化套件,plotly 套件。如果想要使用今天的程式碼,要先記得安裝並啟用plotly套件喔。

Plotly 是一個線上資料視覺化工具,但是plotly也開發了一個R語言套件,讓使用者可以在RStudio裡面做圖,並發表至plotly網站或嵌入至個人網站裡(需要有plotly帳號密碼),不過因為我們沒有這個需求,我們直接在RStudio裡面做圖就好

安裝並啟用套件後就可以開始使用plot_ly函數。plot_ly函數的基本寫法如下:

plot_ly(資料框名稱, x軸資料, y軸資料, z軸資料(如果要畫3D圖), type = “圖表形式”, mode = “資料表現形式”)

其中,type有下列幾種樣式:scatter(散佈圖)、heatmap(熱度圖)、histogram(直方圖)、box(盒型圖)、histogram2d(2d直方圖)、scattergeo(地圖散佈圖)、choropleth(用choropleth套件作底圖資料視覺化)、surface(3d曲面圖)等

mode則是有markers(點)、lines(線)等表現方式。

拿cp資料組(請參考第22,23天)為例,如果要畫出 PM2.5空氣品質資料的盒型圖,可以用下列程式碼執行:

plot_ly(cp, x = cp$PM2.5, type = "box")

圖表如下
https://ithelp.ithome.com.tw/upload/images/20191015/20120887Lbx5seSsDG.png
可以看到右上角有一排功能列,由左至右的功能分別是下載圖表、選擇區域放大圖表、移動圖表、放大圖表、縮小圖表、自動校正、重置圖表顯示、顯示對準線、顯示資料標籤、plotly網站首頁。


接下來我們畫比較不常畫到的圖表,就是3D散布圖,使用資料是PM2.5, PM10, 及溫度,程式碼如下:

plot_ly(cp, x = cp$PM2.5, y = cp$PM10, z = cp$TEMP, type = "scatter3d", mode = "markers")

繪圖結果如下:
https://ithelp.ithome.com.tw/upload/images/20191015/20120887LS6Ux9TX8G.png
可以看到這張圖表變成一張3D的圖表了,如果自己有親手做的話,還可以旋轉、放大這個3D資料圖表。右上角的功能列有儲存圖表、旋轉、放大及標籤資料等功能可以使用。


最後要介紹的是plotlyggplot合用的函數:ggplotly

假設今天想要了解風向對PM2.5及PM10的圖表長什麼樣子,可以先用ggplot把圖畫出來程式碼如下:

wd_2.5_10 <- ggplot(data = cp, aes(x = cp$PM2.5, y = cp$PM10)) +
  geom_point() +
  geom_smooth(aes(colour = cp$wd, fill = cp$wd)) + facet_wrap(~ cp$wd)

圖表則是會長這樣:
https://ithelp.ithome.com.tw/upload/images/20191015/201208875ElbBj5851.png
但是,這張圖表沒有任何互動的元素,就只是一張靜態的圖表這樣,如果要讓這張圖表可以做互動的話,那麼我們就把這張圖表儲存到一個變數上,然後用ggplotly對這個變數做圖:

ggplotly(wd_2.5_10)

https://ithelp.ithome.com.tw/upload/images/20191015/201208879XcmrPI937.png
可以在圖片中最左上角的圖表看到,這時候圖表多了一筆資料的資料標籤,右上角也出現plotly的工作列,這樣就成功了 ˊˇˋ
好了,今天就先學到這邊吧

參考資料:

  1. plotly cheatsheet https://images.plot.ly/plotly-documentation/images/r_cheat_sheet.pdf
  2. plotly 官方網站 https://plot.ly/r/getting-started/
  3. 資料科學與R語言 https://yijutseng.github.io/DataScienceRBook/InteractiveGraphics.html

上一篇
Day 28- R語言 互動式資料視覺化- Part 1- ggvis 套件
下一篇
Day 30- R語言 假設檢定 (Hypothesis testing) 函數練習
系列文
新手 R 語言學習紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言